package T31_T40;

import datastructure.TreeNode;

public class T40 {

    //只需要求出左子树和右子树最大深度然后相加即可
    int res=0;
    public int diameterOfBinaryTree(TreeNode root) {
        if (root==null)return 0;
        maxDepth(root);
        return res;
    }
    private int maxDepth(TreeNode node){
        if (node==null)return 0;
        int leftMaxDepth = maxDepth(node.left);//左子树深度
        int rightMaxDepth = maxDepth(node.right);//右子树深度
        res=Math.max(leftMaxDepth+rightMaxDepth,res);//更新最大直径
        return Math.max(leftMaxDepth,rightMaxDepth)+1;//当前节点的深度
    }
}
